package com.kingyun.gpsinspection.purificationservice.dao.mapper.jsm;

import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Entity;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.EntityVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author YuPeng
 */
public interface JsmEntityMapper {
    /**
     * 插入实体
     * @param entity
     * @return
     */
    int insert(Entity entity);

    /**
     * 修改实体
     * @param entity
     * @return
     */
    int update(Entity entity);

    /**
     * 查询实体列表
     * @param entity
     * @return
     */
    List<EntityVo> selectByEntity(Entity entity);

    /**
     * 查询实体信息
     * @param enId
     * @return
     */
    EntityVo selectByEnId(String enId);

    /**
     * 按实体名查询实体，用于校验
     * @param enName
     * @return
     */
    EntityVo selectByEnName(String enName);

    /**
     * 按机构查询实体数量
     * @param orgId
     * @return
     */
    int selectCountByPOId(String orgId);

    /**
     * 按上级实体ID查询实体数量
     * @param enId
     * @return
     */
    int selectCountByPEId(String enId);

    /**
     * 按机构ID查询实体数量
     * @param orgId
     * @return
     */
    List<EntityVo>  selectByPOId(String orgId);

    /**
     * 按上级实体ID查询实体列表
     * @param enId
     * @return
     */
    List<EntityVo> selectByPEId(String enId);


    /**
     * 分页的总条数
     * @return
     */
    int getPageCount(EntityVo EntityVo);

    /**
     * 分页查询
     * @param EntityVo
     * @return
     */
    List<EntityVo> findByPage(EntityVo EntityVo);


    /**
     * 批量删除实体
     * @param entityIds
     * @return
     */
    int delBatch(@Param("entityIds") List<String> entityIds);

    /**
     * 获取生产实体特性值树，根据组织id
     * @param orgId
     * @return
     * @throws Exception
     */
    List<EntityVo> getEntityPorperties(String orgId);

}
